package com.niiwoo.civet.account.service.check;

import com.niiwoo.civet.account.dto.request.AccountCheckingRecheckRequestDTO;
import com.niiwoo.civet.account.dto.response.AccountCheckingResponse;

/**
 * 对账dubbo接口
 *
 * @author zhoulinquan
 * @create 2017-12-19 14:37
 **/
public interface AccountCheckingJobDubboService {


    /**
     * 执行对账任务
     *
     * @param fileDate 对账日期，格式：yyyyMMhh，可以为空
     */
    void startAccountCheckingJob(String fileDate);

    /**
     * 重新对账
     *
     * @param dto
     */
    void acountCheckingRecheckJob(AccountCheckingRecheckRequestDTO dto);

    /**
     * 补偿过往丢失账期
     * 如果该账期没有，则重新生成当前账期；
     * 如果该账期已存在，则返回false；
     *
     * @param fileDate 账期，格式：yyyyMMhh 不能为空
     */
    default AccountCheckingResponse accountCompensationBillDate(String fileDate) {
        throw new UnsupportedOperationException("unimplemented");
    }

}
